package com.cn.wxwinnie.java.recursion.Hanoi;

/**
 * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com
 * 
 * @version 创建时间：2014年3月13日 下午8:05:10
 * 
 */
public class Test {

	public static void main(String[] args) {
		int discNumber = 2;
		
		moveDisc(discNumber, "A", "B", "C");
	}

	/**
	 * 将discNumber盘子借助mid从from搬到to上面
	 * 
	 * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com
	 * 
	 * @version 创建时间：2014年3月13日 下午8:11:30
	 * 
	 * @param discNumber
	 * @param from
	 * @param mid
	 * @param to
	 */
	static int i = 0;
	public static void moveDisc(int discNumber, String from, String mid, String to) {
		
		if (discNumber == 1) {
			i++;
			System.out.println(i +  "  "+from + " --> " + to);// 如果只有一个盘子
		} else {// 如果盘子数量超过一个 那么先将上面的discNumber-1个盘子从from搬到mid上面，借助to
			moveDisc(discNumber - 1, from, to, mid);
			i++;
			System.out.println(i +  "  "+from + " --> " + to);
			moveDisc(discNumber - 1, mid, from, to);
			//i++;
		}
	}

}
